#Copyright 2012 César Serrano López
#This program is free software: you can redistribute it and/or modify it 
#under the terms of the GNU General Public License as published by the 
#Free Software Foundation, either version 3 of the License, or (at your
#option) any later version.

#This program is distributed in the hope that it will be useful, but
#WITHOUT ANY WARRANTY; without even the implied warranty of 
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
#Public License for more details.
#You should have received a copy of the GNU General Public License along 
#with this program. If not, see <http://www.gnu.org/licenses/>
package controlador;
use Alumno;
use DAO;
use strict;
use Moose;
use warnings;
use lib qw(lib);
use File::Slurp qw(read_file);
use DBI;

#Definimos variables:

my $Alumno;
my $AlumnoNuevo;
my @tablaAlumnos;
my @resultado_ver_todos;
my $dni="";
my $nombre="";
my $edad = 0;
my $curso = 0;
my $numeroAlumnos = 0;
my $n=1;
my $opcion=-1;
my $i;#indice
my $numArgumentos=0;
my $Cuenta=0;
my $rc;
my $dbh;
my $ref;
my $DAO = new DAO();



sub funcion_controlador{

	# Leemos la linea de comandos...

		@ARGV = @_;#numero de argumentos que se le pasan a la función.
		$numArgumentos = @ARGV;
		
	#opciones:
	#        -i  (dni)(nombre)(edad) (curso) insertar alumno en BBDD.
	#        -v  mostrar todos los alumnos.
	#        -e  (dni) editar un alumno. 
	#        -r  reinicia la base de datos. 
	#        -c  crear tablas.    
	    
	   
	    print"numero de argumentos $numArgumentos \n";
	    print"parametro 2-> $ARGV[1] \n";
	    
		if(($numArgumentos == 7)&&($ARGV[1] eq "-i")){ #-i (dni)(nombre)(apellido)(edad)(curso)  INSERTAR UN ALUMNO EN BBDD
			
			$AlumnoNuevo = new Alumno('dni'        => $ARGV[2],
									  'nombre'     => $ARGV[3],
									  'apellido'   => $ARGV[4],
									  'edad'       => $ARGV[5],				 
									  'curso'      => $ARGV[6]); 	
			
			$DAO->Guardar($AlumnoNuevo);
								   
			#push(
			#     @tablaAlumnos,
			#     $AlumnoNuevo
			#     ); 
			#$numeroAlumnos++;     
			
			#Insertamos el alumno en la base de datos
			   
			print "Alumno ingresado con exito.";
		}
		elsif(($numArgumentos < 6)&&($ARGV[0] eq "-i")){   
	   
		   print "faltan parametros!";
	   }
		elsif(($numArgumentos == 2)&&($ARGV[1] eq "-v")){  # -v VER TODOS LOS ALUMNOS
		  
		   @resultado_ver_todos = DAO->MostrarTodos(); 		   
		   return @resultado_ver_todos;  			
		}
		elsif(($numArgumentos == 3)&&($ARGV[1] eq "-b")){  # -b (dni) BUSCAR ALUMNO POR DNI
		   
		   my $AlumnoABuscar = DAO->Buscar($ARGV[2]);
		   my $AlumnotoString;
		   if($AlumnoABuscar != 0){
				
			   $AlumnotoString = $AlumnoABuscar->dni().",".$AlumnoABuscar->nombre().",".$AlumnoABuscar->apellido().",".$AlumnoABuscar->edad().",".$AlumnoABuscar->curso();		   
		   
			   push(
					  @tablaAlumnos,
					  $AlumnotoString
					 ); 
		   }

		   return @tablaAlumnos;  			
		}
		elsif(($numArgumentos == 3)&&($ARGV[1] eq "-x")){  # -x (dni) ELIMINAR ALUMNO
		   		   
		   DAO->Borrar($ARGV[2]); 	  			
		}
		elsif(($numArgumentos == 4)&&($ARGV[1] eq "-e")){ # -e (dni) [-n (nombre)| -a (apellido)| -e (edad)| -c (cursoi)] EDITAR UN ALUMNO 
		   
		   
		   my @argumentos = ($_[1],$_[2],$_[3]);	   
		   $DAO->Editar(@argumentos);	 
		}
		elsif(($numArgumentos == 1)&&($ARGV[0] eq "-r")){ # -r BORRA EL CONTENIDO DE LAS TABLAS USADAS
		
			#Borramos las tablas y crea de nuevo.	    
			DAO->Reiniciar();	    
		}
		elsif(($numArgumentos == 1)&&($ARGV[0] eq "-c")){ # -c CREA LAS TABLAS 
		
			DAO->CrearTablas();    
		}
		else{
		 
			
		}

}##end funcion_controlador

1; 

   

